package com.tydic.borderer.domain.bo;

import com.tydic.common.core.validate.AddGroup;
import com.tydic.common.core.validate.EditGroup;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

@Data
public class MutualHelpOrganizationBo implements Serializable {
    @Serial
    private static final long serialVersionUID = -7321651624120028485L;
    /**
     * 互助组名称
     */
    @NotBlank(message = "请输入互助组名称", groups = {AddGroup.class, EditGroup.class})
    private String name;
    /**
     * 互助组负责人
     */
    @NotBlank(message = "请输入互助组负责人", groups = {AddGroup.class, EditGroup.class})
    private String principal;
    /**
     * 登记号
     */
    @NotBlank(message = "请输入登记号", groups = {AddGroup.class, EditGroup.class})
    private String registerNumber;
    /**
     * 住所
     */
    @NotBlank(message = "请输入住所", groups = {AddGroup.class, EditGroup.class})
    private String residence;
    /**
     * 经营场所
     */
    @NotBlank(message = "请输入经营场所", groups = {AddGroup.class, EditGroup.class})
    private String businessArea;
    /**
     * 成员出资总额
     */
    @NotBlank(message = "请输入成员出资总额", groups = {AddGroup.class, EditGroup.class})
    private String totalAmount;
    /**
     * 业务范围
     */
    @NotBlank(message = "请输入业务范围", groups = {AddGroup.class, EditGroup.class})
    private String businessScope;
    /**
     * 成立时间
     */
    @NotBlank(message = "请输入成立时间", groups = {AddGroup.class, EditGroup.class})
    private String establishedTime;
    /**
     * 有效时间
     */
    @NotBlank(message = "请输入有效时间", groups = {AddGroup.class, EditGroup.class})
    private String validTime;
    /**
     * 登记机关
     */
    @NotBlank(message = "请输入登记机关", groups = {AddGroup.class, EditGroup.class})
    private String registrationAuthority;
    /**
     * 互助组成员列表
     */
    @NotEmpty(message = "请输入互助组成员信息", groups = {AddGroup.class, EditGroup.class})
    @Valid
    private List<MutualHelpOrganizationMemberBo> members;

    private String id;
}
